package com.lfb.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class ListTestDriver {
    public static void main(String[] args) {
//        test01();
        test02();
    }

    /**
     * List接口实现类：LinkedList
     */
    private static void test02(){
        // 创建一个List集合对象
        // 多态：父类指代子类
        // 面向接口编程思想
        List list01 = new LinkedList();
        //存入元素
        list01.add("zhangsan");
        list01.add("lisi");
        list01.add("wangwu");
        list01.add("zhaoliu");
        list01.add(null);
        list01.add("wangwu");

        System.out.println("标准for循环方式遍历");
        //遍历元素
        for (int i = 0;i < list01.size();i++){
            System.out.println(list01.get(i));
        }
        System.out.println("增强型for循环方式遍历");
        for (Object obj:list01){
            System.out.println(obj);
        }
        System.out.println("迭代器方式遍历");
        //获取迭代器对象
        Iterator it = list01.iterator();
        while(it.hasNext()){
            //取出下一个元素
            Object obj = it.next();
            //输出
            System.out.println(obj);
        }

    }

    /**
     * List接口实现类：ArrayList
     */
    private static void test01(){
        // 创建一个List集合对象
        // 多态：父类指代子类
        // 面向接口编程思想
        List list01 = new ArrayList();
        //存入元素
        list01.add("zhangsan");
        list01.add("lisi");
        list01.add("wangwu");
        list01.add("zhaoliu");
        list01.add(null);
        list01.add("wangwu");

        System.out.println("标准for循环方式遍历");
        //遍历元素
        for (int i = 0;i < list01.size();i++){
            System.out.println(list01.get(i));
        }
        System.out.println("增强型for循环方式遍历");
        for (Object obj:list01){
            System.out.println(obj);
        }
        System.out.println("迭代器方式遍历");
        //获取迭代器对象
        Iterator it = list01.iterator();
        while(it.hasNext()){
            //取出下一个元素
            Object obj = it.next();
            //输出
            System.out.println(obj);
        }

    }
}
